<head>
    <meta charset="UTF-8">
<title>算法训练 Hanoi问题</title>
<link rel="stylesheet" href="../css/main.css">
</head>
 <p class="subtitle">问题描述</p><p class="probcontent">
      <P><FONT face="Times New Roman" 
      size=3>如果将课本上的Hanoi塔问题稍做修改：仍然是给定N只盘子，3根柱子，但是允许每次最多移动相邻的M只盘子（当然移动盘子的数目也可以小于M）,最少需要多少次？ 
      <BR>例如N=5，M=2时，可以分别将最小的2个盘子、中间的2个盘子以及最大的一个盘子分别看作一个整体，这样可以转变为N=3，M=1的情况，共需要移动7次。 
      <BR></FONT></P>
      <br /></p><p class="subtitle">输入格式</p><p class="probcontent">
      <P><FONT face="Times New Roman" 
      size=3>输入数据仅有一行，包括两个数N和M（0&lt;=M&lt;=N&lt;=8）</FONT></P>
      <br /></p><p class="subtitle">输出格式</p><p class="probcontent">
      <P><FONT face="Times New Roman" size=3>仅输出一个数，表示需要移动的最少次数</FONT></P>
      <br /></p><p class="subtitle">样例输入</p><p class="probcontent">
      <P><FONT face="Times New Roman" size=3><PRE>5 2</PRE></FONT>
      <P></P>
      <br /></p><p class="subtitle">样例输出</p><p class="probcontent">
      <P><FONT face="Times New Roman" size=3><PRE>7</PRE></FONT>
      <P></P>
      <br /></p>